//
//  FQDFeedCellItemProvider.h
//  FakeQDaily
//
//  Created by mewxiv on 8/29/16.
//  Copyright © 2016 Xensius. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "QDailyAPI.h"

@interface FQDFeedCellItemProvider : NSObject

// 信息流集合
@property (nonatomic, readonly, strong) NSArray *cellItems;
// feedId用于区分不同子类别的信息流(比如栏目的栏目id，文章的文章id等），不设置将使用默认值
@property (nonatomic, strong) NSString *feedId;
// 缓存id，如果为nil表示不缓存，默认为nil
@property (nonatomic, strong) NSString *cacheId;

// 加载新数据
- (void)loadNewCellItems:(void (^)(BOOL isSuccess))completion;
// 加载更多数据
- (void)loadMoreCellItems:(void (^)(BOOL isSuccess))completion;
// 是否还有更多数据
- (BOOL)hasMoreCellItems;
// 是否正在加载Cell数据
- (BOOL)isLoadingCellItems;
// 修改数据
- (void)modifyCellItemsWithBlock:(void (^)(NSMutableArray *originalCellItems))modifyBlock;
// 清空保存的数据
- (void)clearData;


/**
  * Override Methods
  */
// 发送请求获取数据
- (void)getCellItems:(NSString *)cursorKey completion:(QDailyAPICompleteBlock)completion;
// 解析feed响应数据
- (void)parseResponse:(id)response isLatest:(BOOL)isLatest;
// 使用服务器返回数据填充需要显示的Cell数据
- (void)populateNewCellItemsTo:(NSMutableArray *)originalCellItems;

@end
